<template>
	<view class="publish" v-if="show">
		<view class="publish-bg" @click="hide()">

		</view>
		<view class="publish-main">
			<view class="publish-main-list">
				<view class="publish-main-list-item u-flex" @click="jumpPage(0)">
					<image class="publish-main-list-item-icon" src="../../static/img/publish/activity.png" mode="">
					</image>
					<view class="u-flex" style="flex-direction: column;align-items: flex-start;width: 190rpx;">
						<view class="publish-main-list-item-title">
							发布活动
						</view>
						<view class="publish-main-list-item-dsc">
							仅限VIP和合作商
						</view>
					</view>
				</view>
				<view class="publish-main-list-item u-flex" @click="jumpPage(1)">
					<image class="publish-main-list-item-icon" src="../../static/img/publish/trend.png" mode="">
					</image>
					<view class="u-flex" style="flex-direction: column;align-items: flex-start;width: 190rpx;">
						<view class="publish-main-list-item-title">
							发布帖子
						</view>
						<view class="publish-main-list-item-dsc">
							分享趣味生活
						</view>
					</view>
				</view>
				<view class="publish-main-list-item u-flex" @click="jumpPage(2)">
					<image class="publish-main-list-item-icon" src="../../static/img/publish/help.png" mode="">
					</image>
					<view class="u-flex" style="flex-direction: column;align-items: flex-start;width: 190rpx;">
						<view class="publish-main-list-item-title">
							发布求助
						</view>
						<view class="publish-main-list-item-dsc">
							寻求TA人解答
						</view>
					</view>
				</view>
				<view class="publish-main-list-item u-flex" @click="jumpPage(3)">
					<image class="publish-main-list-item-icon" src="../../static/img/publish/vote.png" mode="">
					</image>
					<view class="u-flex" style="flex-direction: column;align-items: flex-start;width: 190rpx;">
						<view class="publish-main-list-item-title">
							发布投票
						</view>
						<view class="publish-main-list-item-dsc">
							了解更多的Ta
						</view>
					</view>
				</view>
			</view>
			<view class="publish-main-close" @click="hide()">
				<image src="../../static/img/publish/close.png" style="height: 60rpx;width: 60rpx;" mode=""></image>
			</view>
		</view>
	</view>
</template>

<script>
	import {
		mapState,
		mapMutations,
		mapAction
	} from 'vuex'
	//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
	export default {
		// 组件名称
		name: 'demo',
		// 组件参数 接收来自父组件的数据
		props: {},
		// 局部注册的组件,import引入的组件需要注入到对象中才能使用
		components: {},
		// 组件状态值
		data() {
			return {
				show: false
			}
		},
		// 计算属性
		computed: {
			showPublishPageState() {
				return this.$store.getters.showPublishPage
			}
		},
		// 侦听器
		watch: {
			showPublishPageState() {
				this.show = this.$store.getters.showPublishPage
			}
		},
		// 组件方法
		methods: {
			hide() {
				this.$store.commit("changeShowPublishPage", false)
			},
			jumpPage(index) {
				switch (index) {
					case 0:
						this.$store.commit("changeShowPublishPage", false)
						this.$Router.push({
							path: "/pages/public/public-activity"
						})
						break;
					case 1:
						this.$store.commit("changeShowPublishPage", false)
						this.$Router.push({
							path: "/pages/public/public-trends"
						})
						break;
					case 2:
						this.$store.commit("changeShowPublishPage", false)
						this.$Router.push({
							path: "/pages/public/public-help"
						})
						break;
					case 3:
						this.$store.commit("changeShowPublishPage", false)
						this.$Router.push({
							path: "/pages/public/public-vote"
						})
						break;
					default:
						break;
				}
			}
		},
		// 以下是生命周期钩子   注：没用到的钩子请自行删除
		/**
		 * 在实例初始化之后，组件属性计算之前，如data属性等
		 */
		beforeCreate() {},
		/**
		 * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
		 */
		created() {},
		/**
		 * 在挂载开始之前被调用：相关的 render 函数首次被调用。
		 */
		beforeMount() {},
		/**
		 * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
		 * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
		 */
		mounted() {},
		/**
		 * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
		 * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
		 */
		beforeUpdate() {},
		/**
		 * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
		 * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
		 */
		updated() {},
		/**
		 * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
		 */
		activated() {},
		/**
		 * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
		 */
		deactivated() {},
		/**
		 * 实例销毁之前调用。在这一步，实例仍然完全可用。
		 */
		beforeDestroy() {},
		/**
		 * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
		 * 所有的事件监听器会被移除，所有的子实例也会被销毁。
		 */
		destroyed() {}
	}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<style scoped lang="scss">
	.publish {
		width: 100%;
		height: 100%;
		position: fixed;

		top: 0;
		left: 0;
		z-index: 999;

		&-bg {
			width: 100%;
			height: 100%;
			background: rgba(0, 0, 0, 0.8);
		}

		&-main {
			position: absolute;
			width: 100%;
			left: 0;
			bottom: 100rpx;
			display: flex;
			flex-direction: column;
			justify-content: center;
			text-align: center;

			&-list {
				&-item {
					justify-content: center;
					margin-bottom: 40rpx;

					&-icon {
						height: 120rpx;
						width: 120rpx;
						margin-right: 20rpx;
					}

					&-title {
						font-size: 32rpx;
						font-family: PingFang SC-Bold, PingFang SC;
						font-weight: bold;
						color: #FFFFFF;
					}

					&-dsc {
						font-size: 24rpx;
						font-family: PingFang SC-Medium, PingFang SC;
						font-weight: 500;
						color: #E7E7E7;

					}
				}

				&-item:nth-of-type(4n-1) {}
			}
		}
	}
</style>
